
#ifndef GKT_WINDOW_TIMEOUT_H
#define GKT_WINDOW_TIMEOUT_H

#include "gkt_types.h"

#ifdef __cplusplus
extern "C" {
#endif

#if defined(GKT_CONFIG_DEBUG_ENABLE) && GKT_CONFIG_DEBUG_ENABLE \
	&& defined(GKT_CONFIG_WINDOW_TIMEOUT_DEBUG_ENABLE) \
	&& GKT_CONFIG_WINDOW_TIMEOUT_DEBUG_ENABLE
#define GKT_WINDOW_TIMEOUT_DEBUG_ENABLE	1
#else
#define GKT_WINDOW_TIMEOUT_DEBUG_ENABLE	0
#endif

#if !defined(GKT_CONFIG_WINDOW_TIMEOUT_DISABLE) || !GKT_CONFIG_WINDOW_TIMEOUT_DISABLE

#if GKT_WINDOW_TIMEOUT_DEBUG_ENABLE
void gkt_window_timeout_enable(const char *caller);
void gkt_window_timeout_disable(const char *caller);
#else
void gkt_window_timeout_enable_nc(void);
void gkt_window_timeout_disable_nc(void);
#define gkt_window_timeout_enable(caller)	\
	gkt_window_timeout_enable_nc()
#define gkt_window_timeout_disable(caller)	\
	gkt_window_timeout_disable_nc()
#endif
void gkt_window_timeout_standby(uint32_t time_ms);
void gkt_window_timeout_reset(void);
void gkt_window_timeout_init(void);

#else

#define gkt_window_timeout_enable(caller)	do {} while(0)
#define gkt_window_timeout_disable(caller)	do {} while(0)
#define gkt_window_timeout_reset()	do {} while(0)
#define gkt_window_timeout_init()	do {} while(0)

#endif

#ifdef __cplusplus
}
#endif

#endif	/* GKT_WINDOW_TIMEOUT_H */

